package com.jf.fileupload;

/**
 * Created with IntelliJ IDEA
 * Description:文件上传学习
 * User:22954
 * Date:2024-09-21
 * Time:16:18
 */
public class FileUpload {
    /*
    前置准备:
        引入commons-fileupload和commons-io依赖
        Tomcat的temp文件夹有读写权限
    前端部分:
        表单上传方式为POST, enctpye为multipart/form-data
    后端部分:
        1.判断是否文件    ServletFileUpload.isMultipartContent(req)
        2.创建解析上传数据的对象
            DiskFileItemFactory diskFileItemFactory= new DiskFileItemFactory();
            ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
        3.设置编码  servletFileUpload.setHeaderEncoding("utf-8");
        4.将上传的数据解析为数组取出 List<FileItem> fileItems = servletFileUpload.parseRequest(req);
        5.分类处理, 表单文本isFormField(), 文件为false
    文件上传注意事项:
        1.编码设置utf-8,防止中文乱码
        2.设置上传数据大小,防止服务器负担过重    可用@MultipartConfig注释或者在web.xml中配置Servlet接收数据的大小
        3.文件存放规律,可根据日期创建文件夹     大量文件存储同一文件夹会增加系统负担,文件夹的读写负载过高
        4.相同文件的上传可用UUID附上前缀名,中间用 '_' / '.' 间隔开,以便后续恢复
     */
}
